Systems and methods for detecting obstructions in a camera field of view

ABSTRACT

A system mounted on a vehicle for detecting an obstruction on a surface of a window of the vehicle, a primary camera is mounted inside the vehicle behind the window. The primary camera is configured to acquire images of the environment through the window. A secondary camera is focused on an external surface of the window, and operates to image the obstruction. A portion of the window, i.e. window region is subtended respectively by the field of view of the primary camera and the field of view of the secondary camera. A processor processes respective sequences of image data from both the primary camera and the secondary camera.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 16/007,448, filed Jun. 13, 2018, which is a continuation of U.S. application Ser. No. 14/880,566, filed Oct. 12, 2015, now U.S. Pat. No. 10,011,226, which is a continuation of U.S. application Ser. No. 14/027,488, filed Sep. 16, 2013, now U.S. Pat. No. 9,185,360, which is a continuation of U.S. App. No. 11/562,998, filed Nov. 23, 2006, now U.S. Pat. No. 8,553,088, which claims priority to U.S. Provisional App. No. 60/738,991, filed Nov. 23, 2005. The above-referenced applications are expressly incorporated herein by reference in their entireties.

FIELD OF THE INVENTION

The present invention relates to detecting and classifying obstructions on the windshield of an automobile as part of a vehicle control system and more particularly the present invention detects and identifies obstructions on the windshield using a camera focused on the plane of the windshield.

BACKGROUND OF THE INVENTION AND PRIOR ART

Cameras are often used to acquire one or more images while viewing through a transparent window such as of glass. One such application is illustrated in FIG. 1, a vehicle control system 80 as disclosed by Stein in U.S. Pat. No. 7,113,867. A camera 32 is mounted inside a “host” vehicle 10 behind the windshield, and camera 32 views the environment through the windshield. System 80 includes camera 32 and a processor 60 that analyzes the images acquired by camera 32. System 80 is operative to detect lane markings in road 20, pedestrians, other vehicles or obstacles, road signs. Commonly, the windshield becomes less transparent due to rain, condensed moisture and/or dirt and image quality of the images produced by camera 32 may be impaired.

U.S. Pat. No. 6,392,218, by Kuehnle, discloses a method for analyzing optical images to detect moisture on a surface such as a windshield of an automobile using a sensor that is mounted on the windshield of the vehicle. An image such as that of the hood of the vehicle is processed and blurriness in the image is associated with moisture on the windshield. The sensor includes an optical image detector and a microprocessor with supporting control circuitry. The optical image detector acquires two-dimensional optical images from either the vehicle itself or an area surrounding the vehicle (e.g. the hood, the road ahead of the vehicle). The acquired optical images are then delivered to the microprocessor, which analyzes the image to determine whether moisture (such as rain) exists on the windshield. Upon detection of sufficient moisture on the vehicle, the microprocessor circuitry can activate the windshield wipers. U.S. Pat. No. 6,392,218 is directed towards only detection of rain or moisture on the windshield.

U.S. Pat. No. 5,923,027, by Stam et al, discloses a method of detecting moisture on a surface of a windshield using a sensor in conjunction with an infrared LED. Edges of moisture (i.e. rain) are detected by the sensor. The LED is used to check for fog on the windshield based upon the manner in which light is reflected. All objects detected by the sensor, including bugs, dirt, and headlamps from oncoming vehicles which create a bright spot in the image would initially be interpreted as moisture which then causes the windshield wipers to be activated. It is only after the wipers have been activated, if the object remains on the windshield, is the obstruction flagged as something other than rain. The spontaneous, random motion of the wipers creates an unnecessary driving distraction for the driver. Additionally, this system cannot differentiate between fog on the inside of the window and fog on the outside of the window.

U.S. Pat. No. 6,768,422, by Scofield, et al, discloses a method for determining if there is moisture on the surface of a windshield using a sensor in conjunction with a polarizing filter. The sensor determines if rain is present by using an edge detection algorithm. Fog is checked for by the polarization patterns created in the image.

All of the above previously disclosed patents are limited by not being able to differentiate between various objects which might appear on a windshield of a vehicle—including, rain, dirt, dust, frost, bugs, cracks, and bird droppings. Additionally these systems are not able to distinguish between fog on the inside of the window and fog on the outside of the window.

None of the above prior art systems provide a solution to bright spots of oncoming vehicles, being misinterpreted as moisture.

Just as a driver of a vehicle responds differently to various obstruction on a windshield, e.g., turning on wipers, spraying the windows, enabling the defogger, etc, so to there is a need for and it would be advantageous to have a vehicular vision system capable of detecting and distinguishing between different obstructions, e.g., between moisture and dirt on the windshield of a vehicle, as well as being able to distinguish whether the obstruction is on the inside of the window, e.g., fog, smoke or dust, or on the outside of the vehicle, e.g., fog, frost, snow. And in order to minimize extraneous use of the wipers there is a need to for a vehicular vision system which is capable of differentiating between bright sots from on-coming vehicles and moisture on the window.

Definitions

The term “primary camera” as used herein refers to camera 32 mounted inside a vehicle and used in systems for detecting road lane markings, other vehicles, pedestrians, and/or road signs. Typically, primary camera 32 focuses on objects that are over five meters from the primary camera.

The term “secondary camera” as used herein refers to a camera mounted inside a vehicle and used for detecting obstructions on the windshield, according to the present invention. Typically, the secondary camera focuses on objects that are less than 20 cm from the camera.

The term “edge” as used herein refers to a series of adjacent points in a digital image at which the intensity as measured at the points changes noticeably. An edge may be caused by different phenomena including: (a) discontinuities in depth, (b) discontinuities in surface orientation and (c) variations in scene illumination.

The term “gradient” as used herein refers to a two dimensional vector with the components given by the derivatives in the horizontal and vertical directions, of the image intensity function at each image point. At each image point, the gradient vector points in the direction of largest possible intensity increase, and the length or magnitude of the gradient vector corresponds to the rate of change in that direction.

The term “windshield” as used herein refers to a window either flat or curved installed on a vehicle which is at least partially transparent in a portion of the visible spectrum but not significantly translucent, opaque or hazy.

The terms “window” and “windshield” are used herein interchangeably and refers to the front window of the vehicle, the back window or a side window.

The term “windshield region” as used herein refers to the area of a windshield of a vehicle, for example the windshield, subtended by the field of view of a camera situated inside the vehicle.

The terms “classify” and “identify” are used herein interchangeably in the context of classifying or identifying obstructions on a window.

SUMMARY OF THE INVENTION

According to the teachings of the present invention there is provided a system mounted on a vehicle for detecting an obstruction on an external surface of the windshield of the vehicle. A primary camera is mounted inside the vehicle; the primary camera is configured to acquire images of the environment through the windshield. A secondary camera is focused on an external surface of the windshield, and operates to image the obstruction. A portion of the windshield, i.e. windshield region is subtended respectively by the field of view of the primary camera and the field of view of the secondary camera. A processor processes respective sequences of image data from both the primary camera and the secondary camera.

In vision systems where the image analysis is at least partially based on edge detection, such edges are represented in the images by high spatial frequencies. If the windshield is sufficiently clean, no edges or only edges with insignificant gradient will show in the images of the secondary camera.

According to the present invention there is provided a computerized system including a camera mounted on a vehicle for classifying at least one obstruction on a surface of a window of the vehicle, the system including: (a) a secondary camera mounted inside the vehicle, the secondary camera focusing on at least a portion of the surface of the window; and (b) a processor which processes a plurality of secondary images acquired by the secondary camera, and identifies the obstruction when present on the surface. The surface of the window can be selectably either the external surface of the window or the internal surface of the window.

The system further includes a primary camera mounted inside the vehicle, the primary camera configured to acquire multiple primary images of the environment through the window. A region of the window is subtended by respective fields of view of the secondary camera and the primary camera. The processor processes respectively at least one of the primary images and at least one of the secondary images.

The processor can use information extracted from the at least one primary image to selectably either enhance identifying the at least one obstruction or eliminating false identification of an obstruction.

The obstruction may cause a deterioration of the quality in the primary image. The processor is capable of determining the deterioration of image quality in the primary images.

The system may further include an activation mechanism operatively attached to the processor. The activation mechanism causes cleaning fluid to be sprayed on the window and windshield wipers to be activated when the processor identifies an obstruction, including dirt on the window while the surface is dry. When the obstruction includes dirt and moisture the processor activates the wiper.

When the processor identifies an obstruction, the processor initiates a task to remove the obstruction. The task is selected from the group of tasks consisting of: notification of the driver of the vehicle, disabling the system, activating wipers with or without cleaning fluid and activating defogging, turning on fog lights.

The secondary camera may also focus on at least a portion of the internal surface of the window and identify an obstruction when present on internal surface.

The secondary camera may perform tasks for the primary camera selected from the group of applications consisting of: ambient light sensing, gain control sensing.

The system may further include a pulsing light source, capable of illuminating a region of the window. The secondary camera is synchronized with the pulsing of the light source and images the illuminated region. According to the present invention there is provided a method for classifying at least one obstruction on a surface of a window of a vehicle, using a computerized system including a camera mounted on the vehicle for, the method including: (a) providing a secondary camera mounted inside the vehicle focusing on a surface of the window, and providing a secondary image of the surface; and (b) processing the secondary image thereby identifying an obstruction when present on the surface. The method may include edge detection to detect the obstruction.

The method may further include providing a primary camera mounted inside the vehicle, configured to acquire multiple primary images of the environment through the window. A region of the window is subtended by respective fields of view of the secondary and the primary camera. The processing of a primary image yields detecting at least one obstruction and determining deterioration of image quality in the primary image, which is caused by the obstruction.

Identifying an obstruction is also performed by processing a primary image which may selectably either enhance the identification of the obstruction or eliminating a false identification of an obstruction.

The method may use the secondary camera ambient light sensing set the mode of the system to selectably either day mode, dusk mode or night mode and optionally, when determining the level of ambient light as being of dusk mode or night mode, turning on the headlights.

The method can identify the obstruction is being one in the group consisting of: rain, dirt, mud, snow, frost, cracks, smoke, dust, condensation, smeared insects and bird droppings. Upon identifying an obstruction, the method initiates a task to remove the obstruction. The task is selected from the group of tasks consisting of: notification of the driver of the vehicle, disabling the system, activating windshield wipers, spraying fluid on windshield and activating defogging of a window.

The processing of a primary image may include at least one other vehicular vision processing application selected from the group of applications consisting of: detecting lane markings in a road, detecting pedestrians, detecting vehicles, detecting obstacles, detecting road signs, lane keeping, headway keeping and headlights control. The application may be turned off, when an obstruction is identified.

The identifying of the obstruction may include classifying the obstruction, using a Support Vector Machine (SVM) techniques or SVM with Radial Basis Function kernel techniques or any other technique know in the art.

The method may further include illuminating the window with a pulsing light source, whereas the secondary camera is operated synchronously with the pulsing light source.

These and other advantages of the present invention will become apparent upon reading the following detailed descriptions and studying the various figures of the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become fully understood from the detailed description given herein below and the accompanying drawings, which are given by way of illustration and example only and thus not limitative of the present invention, and wherein:

FIG. 1 illustrates a prior art system installed in a vehicle having a primary camera, designated to detect road lane markings, pedestrians, other vehicles or obstacles, and/or road signs;

FIG. 2 illustrates a vehicle having a camera obstruction detection and classification system, in accordance with an embodiment of the present invention;

FIG. 3 is a perspective view that exemplifies a camera obstruction detecting and classifying system where the primary camera and the secondary camera are set side by side;

FIG. 4 is a perspective view that exemplifies a camera obstruction detection system where the primary camera and the secondary camera are set one below the other;

FIG. 5 is a close up side view illustrating a camera obstruction detection system where the primary camera and the secondary camera are set one below the other, behind the vehicle obstructed windshield;

FIG. 6 is a schematic flow diagram showing the data and decision flow in a camera obstruction detecting system, in accordance with an embodiment of the present invention;

FIG. 7 is a schematic flow diagram outlining an algorithm that exemplifies a method for classifying obstruction types in a camera obstruction detecting system, according with an embodiment of the present invention; and

FIG. 8 is a schematic flow diagram illustration of selecting day and night modes for a camera obstruction detecting system, in accordance with an embodiment of the present invention.

FIG. 9a shows an example image of rain drops on the windshield as viewed by the secondary camera of a camera obstruction detecting system, in accordance with an embodiment of the present invention.

FIG. 9b shows the example of the rain drops on the windshield illustrated in FIG. 9a , as viewed by the primary camera of a camera obstruction detecting system, in accordance with an embodiment of the present invention.

FIGS. 10a, 10b and 10c illustrate a raindrop and its tri-points that are a distinctive feature of raindrops.

FIG. 11 shows, by way of example, a series of graphs characterizing the tri-points that are a distinctive feature of raindrops.

FIG. 12a shows an example image of an opaque obstruction on the windshield, as viewed by the secondary camera of a camera obstruction detecting system, in accordance with an embodiment of the present invention.

FIG. 12b shows the example of the opaque obstruction on the windshield illustrated in FIG. 12a , as viewed by the primary camera of a camera obstruction detecting system, in accordance with an embodiment of the present invention.

FIG. 13 shows, by way of example, the drop in image contrast of primary images, caused by a smeared/squashed insect.

FIG. 14 shows, by way of example, the differences in typical edge profiles of a rain drop edge segment, light mud edge segment and thick mud edge segment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention is a system mounted on a vehicle for detecting an obstruction on an external surface of a windshield of the vehicle. A primary camera typically used for a driver's warning system and/or for a vehicle control system, is mounted inside the vehicle behind the windshield. The primary camera is configured to acquire images of the environment through the windshield. A secondary camera is focused on a surface of the windshield. Due to the angle of the windshield a portion of the secondary camera is focused on the external surface of the windshield, and a portion of the secondary camera is focused on the interior of the window. The secondary camera operates to image the obstruction. A portion of the windshield, i.e. windshield region is subtended respectively by the field of view of the primary camera and the field of view of the secondary camera. The primary and secondary cameras work in conjunction with each other in order to assure that there are no obstructions blocking the primary camera, and to minimize unnecessary image processing of the secondary camera (e.g., in the case whereby the primary camera recognizes bright points of light from on-coming vehicles and notifies the secondary camera that the bright spot is indeed a light source and not moisture or some other obstruction on the windshield.)

Before explaining embodiments of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the host description or illustrated in the drawings.

Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art of the invention belongs. The methods and examples provided herein are illustrative only and not intended to be limiting.

By way of introduction, the principal intentions of the present invention include detecting and classifying different obstructing substances on the windshield.

An aspect of the present invention is to distinguish between the various causes of image impairment since different causes of image impairment require a different response from the driver. In particular (a) rain drops and snow flakes prompt activation of the wipers, (b) dirt prompts the activation of the wipers with fluid and if the dirt persists, the driver is optionally prompted to manually clean the windshield, (c) smoke and dust particles collected on the inside of the windshield might require special service, (d) fog prompts lighting of fog light and (e) condensation prompts activating a defogger. Thus it is important to be able to distinguish between the different causes of image impairment. When an obstruction is detected, a low visibility signal may be generated indicating possible system unavailability due to image impairment.

It is another aspect of the present invention to integrate the detection and identification of the obstructions on the windshield with the function of the primary camera, i.e. a driver's warning system and/or for a vehicle control. It should be noted that all obstructions on the windshield very similar in the images acquired by the primary camera, the primary camera being typically focused on objects outside the vehicle. Obstructions as viewed by the primary camera appear as blurred images, because the windshield and the obstructions on an external and internal surface of the windshield are significantly out of focus. Thus the primary camera is preferably not used to determine the cause of the visibility impairment. FIG. 9a shows an example image of rain drops (502 and 504) on windshield 12 as viewed by the secondary camera. The rain drops are imaged by the primary camera as a blurred patch 512 and 514, shown in FIG. 9b , while imaging a distant checkerboard-like target. FIG. 12a shows an example image of dirt (530) on windshield 11 as viewed by the secondary camera. The dirt is imaged by the primary camera as a blurred patch 532, shown in FIG. 12b , while imaging a distant checkerboard-like target.

FIG. 2 illustrates a vehicle having a camera obstruction detection and classification system, in accordance with an embodiment of the present invention. FIG. 2 depicts a host vehicle 10 that travels on a road surface 20, having a camera obstruction detection system 30, including: a primary camera 32; a secondary camera 33; and a processing unit 34. Primary camera 32 is mounted on host vehicle 10 viewing the environment through windshield 12 with a field of view typically of 30-50 degrees. Secondary camera 33 is mounted on host vehicle 10 and focuses on windshield 12 preferably over a windshield region subtended at least in part by the field of view of primary camera 32.

FIG. 3 is a perspective view of an example of a camera obstruction detecting system 30, having a primary camera 32 and a secondary camera 33 situated side by side. Windshield region 43 of secondary camera 33 is at least overlapping windshield region 42 of primary camera 32.

FIG. 4 is a perspective view that exemplifies a camera obstruction detection system 30 where primary camera 32 and secondary camera 33 are set one below the other. Windshield region 43 of secondary camera 33 is at least overlapping windshield region 42 of primary camera 32.

The present invention is not limited to a side-by-side embodiment or a top-down embodiment. The system may be mounted on a front or rear windshield, as well as on a side window—or behind any glass surface, for example behind the glass enclosure of the headlamps or tail lamps of the vehicle.

FIG. 5 is a close up view illustrating a camera obstruction detection system 30 where primary camera 32 and secondary camera 33 are situated one below the other, behind windshield 12. Windshield 12 has light obstructing substances 50 stuck onto windshield 12 external surfaces and blocks some of the light returning to primary camera 32. Secondary camera 33 is focused on an external surface of windshield 12 preferably in region subtended by the field of view of primary camera 32. Typically, system 30 is continuously monitoring windshield 12, analyzing secondary images. In some embodiments, the analysis of identifying an obstruction 50 is triggered by the primary vision processor 60.

Often, the optical axis secondary camera 33 is not completely perpendicular to windshield 12 surface. Due to the thickness of windshield 12 and the finite depth of field of secondary camera 33, in some parts of the image, typically the lower parts of the image, the inner surface of the windshield 12 is most in focus. Typically, in the upper parts of the image, the outer surface of windshield 12 is most in focus. Having the ability to also focus secondary camera 33, in parts of the secondary image, on the inner surface of windshield 12 allows system 30 to determine, in a case of fog, condensation or smoke residue (which the camera picks up as texture) whether it is outside the vehicle 10 or on the inner surface of windshield 12. Having the ability to also focus secondary camera 33, in parts of the secondary image, on the inner surface of windshield 12 allows system 30 to also detect other obstructions on the inner surface of windshield 12, such as accumulated smoke particles, fog or dust, and to determine where the obstruction is on the inside or outside of windshield 12. One such situation where it is necessary to check the inside of windshield 12 is when there is fog on windshield 12. The driver might have turned on the defogger to clear windshield 12, and yet the region in front of the camera might still not be cleared of the fog or frost. By checking if the fog is on the inside or outside of windshield 12, the system will be able to determine the proper corrective action, e.g. whether to signal for the heater, defogger or low visibility mode.

FIG. 6 is a schematic flow diagram showing data and decision flows in system 30, in accordance with an embodiment of the present invention. In a vision system 30 mounted on host vehicle 10, primary camera 32 views the scene in front of primary camera 32 through windshield 12 as in prior art vision system 80. Often, light passing through windshield 12 is at least partially blocked, attenuated, scattered or absorbed by obstructions 50 on the external surface of windshield 12, before reaching primary camera 32. Primary camera 32 acquires images and transmits (step 132) the acquired images to primary vision processor 60 to be processed. Secondary camera 33 transmits (step 133) the acquired images to a high frequency presence decision module 134 for processing.

Processor 34 detects substances 50 adhering to an external surface of windshield 12, and analyzes the image deterioration if any caused by detected light obstructing substances 50, on the images acquired by primary camera 32. The image deterioration caused by light obstructing substances 50 is considered negligible if the obstructed light has no measurable influence on the image quality from images from primary camera 32. The image deterioration when measured optionally causes system 30 to activate a low visibility mode, if the obstructed light reduces the performance of primary camera 32, but still executes part of the tasks. The image deterioration caused by light obstructing substances 50 can even cause primary camera 32 to stop function.

In vision systems, where the image analysis is at least partially based on edge detection, such edges are represented in the images by high spatial frequencies. If windshield 12 is sufficiently clean, edges with significant gradient do not show in the images acquired by secondary camera 33. If obstructions 50 are situated on a windshield region of windshield 12, then processing unit 34 determines the area on windshield 12 containing obstructions 50. The corresponding area in images acquired by primary camera 32 is also analyzed for high spatial frequencies. If the gradient of the edges detected is lower than some threshold, system 30 activates low visibility mode, having determined that obstructions 50 are present on a windshield region of windshield 12.

Referring back to FIG. 6, secondary camera 33 transmits (step 133) the acquired images to a high frequency presence decision module 134 to be processed. If processing unit 34 detects in images acquired by secondary camera 33, in step 134, high spatial frequencies, representing edges, and in respective regions of respective images obtained by primary camera 32 no high spatial frequencies are observed in step 135, decision step 136 activates a low visibility mode, in step 137. Obstructions 50 detected by processor 34 in the images acquired by secondary camera 33, are classified in step 300 and actions are taken in step 301 according to the type of obstructions 50 detected and classified.

FIG. 8 shows a schematic flow diagram outlining an algorithm 300 that exemplifies a method for classifying obstruction 50 types in a camera obstruction detecting system 30, according with an embodiment of the present invention. Obstructions 50 are detected by secondary camera 33, being focused on windshield 12.

As a preliminary step, system 30 maps out false edges in the secondary image obtained in step 305, for example, a distant light source appears as a focused point of light in the primary image. It is well known from optics, that in a camera that is focused on the near distance (the secondary camera in the present invention), this point of light will appear as a disc with sharp edges. Such discs with sharp edges must be eliminated (step 306) from further analysis. The masked out secondary images are analyzed in step 310 for high frequencies representing sharp edges. If no edges were detected, images obtained in step 305 are analyzed in step 320 for blurry regions. If no blurry regions were detected in the primary image, algorithm 300 assumes windshield region 43 is clear. If low visibility mode was active, low visibility mode is turned off in step 325 and if the wipers were active the wipers are turned off in step 335. If blurry regions were detected in the primary image in step 320, fog, smoke (which is granular) or condensation situation or the like are assumed to persist; low visibility mode is activated in step 330 but if the wipers were activated, the wipers are turned off in step 335.

If in step 310 at least one edge is detected, system 30 proceeds into a classification procedure to classify 311 the detected obstruction 50. Images obtained in step 305 are further analyzed in step 312 to determined if the obstruction is a crack in windshield 12. If the obstruction is a crack, the crack edges are masked out from the secondary image, and system 30 proceeds to obtain the next image in step 305. If the classification fails in step 312, system 30 looks for objects with bright, dark, and grey spots in step 340. Objects with bright, dark and grey spots characterize rain drops. Rain may be stationary or seen as moving depending on whether the vehicle is stationary or moving. If one or more moving objects with both bright and dark spots are detected in step 340, rain is assumed and the wipers are activated in step 380.

If in step 340 no raindrops are detected, further analysis action is taken in step 350 for detecting opaque objects such as thick mud. If in step 350 no opaque objects were detected, further analysis action is taken in step 355 for detecting semi-opaque objects such as frost or dust or smoke residue. If in step 350 no semi-opaque objects were detected, algorithm 300 assumes obstruction 50 represents an unknown obstruction 50. The unknown obstruction 50 might be a temporary obstruction, or a failing sensor, etc. Primary vision system 60 may be notified in step 357 and system 30 proceeds to obtain the next image in step 305.

If in step 350 one or more opaque object was detected an attempt is made to remove the detected opaque object by activating in step 390 the mist for the wipers and in step 380 the wipers themselves. If in step 360 after a preset number of attempts to remove obstructions 50 is surpassed and obstructions 50 sustains, primary system processor 60 (FIG. 6) is deactivated and the driver is preferably notified.

If in step 355 frost is detected an attempt is made to remove the frost by activating in step 356 the defroster. If smoke residue is detected the driver may be notified to remove the smoke residue.

The following gives the characteristics of various types of visual obstructions 50 and methods to detect them and remove them:

-   -   (a) As a preliminary step, system 30 maps out false edges in the         secondary image, for example, a distant light source appears as         a focused point of light in the primary image. It is well known         from optics, that in a camera that is focused on the near         distance (the secondary camera in the present invention), this         point of light will appear as a disc with sharp edges. Such         discs with sharp edges must be eliminated from further analysis.         If primary camera 32 identifies a point of light, secondary         camera 33 is notified exactly where this point of light is         located. Secondary camera 33 then recognizes the corresponding         disc of light with a known radius to have been produced by a         light source and ignores the disc edges. System 30 looks for         rings of a focus typical of distant point of light. The radius         can be determined empirically or calculated by standard methods         of optics, see for example: MIT press, Berthold Horn, Robot         Vision, included herein by reference for all purposes as if         entirely set forth herein.         -   the radius can be determined empirically: the vertical and             horizontal derivatives of the image are computed and are             combined to a derivative magnitude image:             I _(mag)=√{square root over (I _(x) ²+)}I _(y) ²  (1)         -   a binary map of all pixels whose edge is above a certain             threshold is computed. The threshold can be fixed or data             dependent such as N*std over the mean, etc.         -   In an embodiment of the present invention, bright spots are             detected in the primary image for identifying a distortion             50 at night time. For each detected bright spot, a ring of             radius R and thickness T is dropped from further             consideration (see equation 1). Steps are taken again to             compute a derivative magnitude image. Then, the number of             pixels C in I_(mag) that are above a certain threshold are             counted. The threshold can be fixed or data dependent such             as N*std over the mean, etc. If C is greater than some             threshold, then an obstruction is detected.         -   As an additional preliminary step, system 30 eliminates the             areas which have remained on window 12 for a period of time.             These could indicate ‘poc-marks’ on the window caused by             small stones or some other small object which left a             ‘bullet-like’ hole without actually having cracked window             12.     -   (b) Test for frost, dust and/or smoke particles: system 30 uses         a RBF SVM (Support Vector Machine with Radial Basis Function         Kernel), see for example: Cambridge University Press, Cambridge,         UK, Cristianini and Shawe-taylor, An Introduction to Support         Vector Machines and other kernel based learning methods included         herein by reference for all purposes as if entirely set forth         herein; or in Scholkopf, Burges and Smola Eds., Advances in         Kernel Methods: Support Vector Learning, The MIT Press,         Cambridge, Mass., included herein by reference for all purposes         as if entirely set forth herein.         -   Frost and smoke-residue/dust (hereinafter referred to as             smoke) each have their specific textures easily             distinguishable to the human eye, and typically cover large             areas. A classifier trained on a predetermined window patch             size, classifies an obstruction 50 as being a frost or smoke             residue. System 30 classifies all patches (for example of             size 16×16) in the image which do not include any of the             previously detected obstacles using a template based             classifier (such as RBF SVM) taught with examples of             frost/smoke residue/clear/other, where ‘other’ includes             examples of mud/rain/light mud etc. It should be noted that             there are other techniques for classifying textures which             are well published and can be sued to replace the             classification step. Since the classifiers are binary             classifiers, system 30 can use, for example, four separate             sub-classifiers to classify a patch in the secondary image:             -   a. frost against smoke residue/clear/other;             -   b. smoke against frost/clear/other;             -   c. clear against frost/smoke residue/other; and             -   d. other against frost/smoke residue/clear.         -   The patch, in this example, is given the classification of             the sub-classifier with the highest positive score. If all             scores are negative it is classified as ‘unknown’.         -   System 30 then computes the total area of frost by taking             the union of all patches classified as frost, and the total             area of smoke by taking the union of all patches classified             as smoke residue. If total frost area exceeds a certain             threshold or the number of patches classified as frost             exceeds a certain threshold, then the condition is             classified as ‘possible frost’. If total smoke area exceeds             a certain threshold or the number of patches classified as             smoke exceeds a certain threshold, then the condition is             classified as ‘possible smoke residue’.         -   if both ‘possible frost’ and ‘possible smoke residue’             conditions exist, system 30 acts as if just frost exists,             including: notifying the driver, activating a defrost             mechanism, notifying primary vision system 60. If only the             ‘possible smoke residue’ condition exists, system 60 must             determine if the residue is really smoke residue on             windshield 12 internal surface or some other fine residue on             the external surface of windshield 12 (the image texture is             very similar to that of fine pollen). To detect if the smoke             residue texture is on the internal surface or external             surface of windshield 12, system 30 compares the spatial             frequencies of the texture in the upper and lower parts of             the secondary image. Since windshield 12 is at an angle to             the camera neither inner or out surfaces are completely in             focus throughout the image. The optics can be designed such             that the lower in the image, external surface is in focus             and the internal surface is more in focus. In particular,             the optics can be designed such that the transition line             cuts through typical areas of smoke residue build up. If             smoke buildup exists on the inner surface it might require             service.         -   If ‘possible smoke residue’ conditions exist on the internal             surface of windshield 12, appropriate actions are taken in             step 301, for example: inform the driver: ‘service is             required’.     -   (c) Test for cracks: system 30 computes a derivative magnitude         image, as in equation 1. If connected edges form a first long         edge segment that are longer than a certain threshold N and the         curvature of the edge segment is less than a certain threshold T         and a second edge segment which is generally parallel to the         first segment than system 30 classifies the obstruction 50 as         being a crack in windshield 12. Furthermore, the crack segment         points can be added to binary mask, not to be used for rain and         other detections. If a second edge segment which is generally         parallel to the first segment is not found, the obstruction 50         may be a sticker or flyer attached to windshield 12. If crack in         windshield 12 or any other long obstruction 50 is identified,         appropriate actions are taken in step 301, for example: notify         the driver and/or low visibility mode is activated.     -   (d) Test for rain drops: In daytime, system 30 looks for strong         horizontal edge components with dark patch above bright patch         surrounded by a gray region. FIG. 9a shows an example image of         rain drops (502 and 504) on windshield 12 as viewed by secondary         camera 33 Rain drops 502 and 504 are imaged by primary camera 32         as corresponding blurred patches 512 and 514, shown in FIG. 9b ,         while imaging a distant checkerboard-like target. System 30         computes a bounding box which includes both light and dark         patches. System 30 then computes histograms of image gradient         orientations for the four quadrants of the bounding box, and         uses pattern, for example, a RBF SVM classifier trained on image         gradient orientations, to classify as a rain drop.         -   In an embodiment of the present invention, system 30 looks a             distinctive feature of raindrops: a Junction of the three             regions with different shades: dark, bright and grey. We             hereinafter refer to these special Junction points as             tri-points, which typically positioned at either the on the             left or the right of the rain drop.         -   FIGS. 10a, 10b and 10c illustrate a typical raindrop 500             with tri-points 505 and 507 that are a distinctive feature             of raindrops. The surrounding windshield 12 is a bit darker             than the bright region 511 and lighter than the dark region             509 of a rain drop 500. The Junction of the three regions             with different shades: dark 509, bright 511 and grey 510 are             highlighted by circle 503 in FIG. 10b . The Junction is             referred to as a tri-point. To locate such tri-points in the             image system 30 analyzes all edge points in the image. For             each edge point system 30 looks at the image brightness of             the points along a circle of radius R (e.g. R=5 pixels)             around the edge point being tested, such as circle 503. FIG.             10c shows the left tri-point 505 and right left tri-point             507. FIG. 11 shows examples of the brightness profiles on             circles surrounding edge points that are tri-points, edge             points that are only between two regions such as the edge of             a patch of frost, and around points that are not on an edge.             Tri-points can be sub-classified into left and right             tri-points. To classify, system 30 finds the best match to             templates such as the templates shown in the FIG. 11, using             nearest neighbor with a normalized correlation distance             measure. The left and right tri-points (FIG. 11) that lie on             the same edge segment (edge points, FIG. 11) are matched.             For each matching pair left and right tri-points, that             define a raindrop, system 30 may also verify that the edge             segment has consistent sign along the edge elements and that             the generally enclosed edge segment contains a dark region             above a bright region. Also, the distance between points is             below a certain value which depends on the specific optics.             Another criterion that can be used is that the angle of the             straight line joining the two tri-points is less than 45°             from horizontal. One can estimate the area of a rain drop by             taking the distance between the two tri-points, squared. If             the number of rain drops detected exceeds a threshold or the             total area of rain drops exceeds a threshold, then the             windshield wipers are activate (step 380).         -   For the sake of clarity, it is noted that these methods may             not detect all rain drops in every frame but these methods             have a detection rate of above 80%, which is sufficient for             this application.         -   At night time the scenery is different. Bright spots are             detected in the primary image. For each detected bright             spot, a ring of radius R and thickness T is matched in the             secondary images. System 30 can then look for circles in the             secondary image and see if there are breaks in the edge,             indicating some interference on the external surface of             windshield 12. If rain drops are detected, appropriate             actions are taken in step 301, for example: activating the             wipers in step 380.     -   (e) Test for snow flakes: system 30 uses, for example, RBF SVM         classifier trained on a predetermined size patch, to classify an         obstruction 50 as being a snowflake. If snow flakes are         detected, appropriate actions are taken in step 301, for         example: activating the wipers in step 380.     -   (f) Test for thick mud or light mud or squashed insect: light         mud, squashed insect, bird droppings and the like, appear quite         similar in the image. FIG. 12a shows an opaque obstruction 530         on windshield 12 as viewed by secondary camera 33. FIG. 12b         shows the same example as viewed by primary camera 32.         Obstruction 530 is imaged by primary camera 32 as blurred patch         532. FIG. 13 shows, by way of example, the drop in image         intensity of primary images, caused by a smeared/squashed         insect. The checker-board like image shows clearly a drop in         intensity in the obstructed region. The main difference is the         size of the affected area which is usually limited for insects         and extensive for light mud. Since system 30 response is the         same (activate wipers with fluid+notify primary vision system of         affected regions) thick mud or light mud or squashed insect are         detected in the same module and treated the same.         -   System 30 locates dominant edges (i.e., edges appearing in             both high and low levels of the image resolution). The edges             may be tracked over time (a few frames) to determine if the             edges are stationary, and classifies the edge profile into             thick mud, light mud and rain drop profiles by, for example,             template matching (nearest neighbor, normalized             correlation). FIG. 14 shows, by way of example, the             differences in typical edge profiles of a rain drop edge             segment, light mud edge segment and thick mud edge segment.             The light mud edge segment is of the lowest contrast. If             edges matching the light mud or thick mud profiles persist,             system 30 assumes it represents an opaque obstruction 50             such as dirt, mud, snow, smeared insect, bird droppings and             the like.         -   If no match is found, system 30 can further analyze             obstruction 50, which is a blob. System 30 grows the blob by             up to 3 pixels, to nearest edge point. Blobs that include             edge points that more than 50% of the edge points are             masked—are discarded. System 30 then classifies edge points             on the remaining blobs. If 50% or more of the edge points             are classified as thick mud, then the blob is classified as             thick mud. If 50% or more of the edge points are classified             as light mud, then the blob is classified as light mud. If             total area of the blob is above a certain threshold, system             30 attempts to remove obstruction 50 by activating the             wipers in step 380 along with mist, which is activated in             step 390. If the condition persists the driver is notified.             System 30 notifies primary vision system 60 of the extent of             the obstruction.         -   For all overlapping sub-patches in the image (for example, a             sub-patch can be of size 10×10 pixels), system 30 counts the             number of edge pixels that are classified as light mud, and             the number of edge pixels classified otherwise. If the             number of edge pixels that are classified as light mud is             greater than the rest of the edge pixels by some threshold,             then system 30 classifies the blob as light mud. The edges             are tracked over time (a few frames) to determine if the             edges are stationary. If edges matching the light mud or             thick mud profiles persist, system 30 assumes it represents             an opaque obstruction 50 such as dirt, mud, snow, smeared             insect, bird droppings and the like. Attempt to remove them             by activating the wipers in step 380 along with mist,             activated in step 390.     -   (g) For each region with high frequencies not classified in the         above mentioned tests, system 30 locates dominant edges (i.e.,         edges appearing in both high and low levels of the image         resolution), tracks the edges over time and determine if the         edges are stationary. If a region with high frequencies         persists, system 30 assumes it represents a solid obstruction         and computes the size of the obstruction 50. If the computed         area is larger than some threshold, an attempt to remove is done         by activating the wipers in step 380 along with mist, which is         activated in step 390.

FIG. 7 is a schematic flow diagram illustration of selecting day and night modes for a camera obstruction detecting system 30, in accordance with an embodiment of the present invention. In an initial step 150, system 30 determines if ambient lighting is that of day time or night time and sets system 30 parameters accordingly, in either step 151 or step 152. In the next step 300, system 30 locates and analyzes the images obtained by secondary camera 33 for regions of high spatial frequency, classifies detected obstructions 50 and selects for each type of obstructions actions to be taken. The analysis for high spatial frequencies can be done by using Fourier transform, by comparing the gradient strength in images at various levels of image resolution and/or by any other method known in the art. If high frequencies are detected in step 310, corresponding regions in corresponding images obtained by primary camera 32 are also analyzed for high spatial frequencies. If at least one of the corresponding regions in corresponding images obtained by primary camera 32 lack high frequencies, low visibility analysis 300 proceeds.

Secondary camera 33 is not performing time critical processing and thus, secondary camera 33 can be optionally used for other tasks, to supplement primary camera 32. For example, secondary camera 33 can be used as an ambient light sensor or as a sensor for the gain control of primary camera 32.

In another embodiment of the present invention, system 30 also includes a light source, for example a LED, mounted, for example, Inside secondary camera 33 mount. At dark nights, the light source flashes instantaneously, at a low frequency rate, such that the pulsing does not interfere with other operations of primary camera 32. When flashing, the light source illuminates windshield 12 and secondary camera 33, which is synchronized with the timing of the flashing, is imaging the lit windshield 12.

The invention being thus described in terms of embodiments and examples, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims. 

What is claimed is:
 1. A system comprising: a camera array mountable on an interior of a vehicle to capture an environment in front of the vehicle through a windshield, the camera array including a first camera having a first focal range and a second camera having a second focal range shorter than the first focal range, and the first camera and the second camera having overlapping fields-of-views; and a processor to: access a plurality of images from the camera array, the plurality of images including images captured from the first camera and the second camera which include a portion of the windshield; determine whether the plurality of images include an obstruction on the portion of the windshield, the processor to use a trained image classification method to identify the obstruction, wherein the obstruction includes rain on the windshield; and transmit a signal toward a windshield wiper assembly in response to identification of the rain on the windshield using the trained image classification method.
 2. The system of claim 1, wherein the second focal range includes an external surface of the portion of the windshield.
 3. The system of claim 1, wherein the first focal range includes a portion of the environment at least five meters from the first camera.
 4. The system of claim 1, wherein responsive to identification of the obstruction, the processor is configured to process at least one image from the second camera to determine one or more regions in image space of the first camera which are affected by the obstruction.
 5. The system of claim 1, wherein the processor is configured to identify the obstruction based on the obstruction being associated with bright and dark spots in the plurality of images.
 6. The system of claim 1, wherein the signal is transmitted toward the windshield wiper assembly based on a total area of water identified in the portion of the windshield.
 7. At least one non-transitory computer-readable medium including instruction, which when executed by a computer system, cause the computer system to perform operations comprising: accessing a plurality of images obtained from a camera array mountable on an interior of a vehicle to capture an environment in front of the vehicle through a windshield, the camera array including a first camera having a first focal range and a second camera having a second focal range shorter than the first focal range, and the first camera and the second camera having overlapping fields-of-views, and the plurality of images including images captured from the first camera and the second camera which include a portion of the windshield; determining whether the plurality of images include an obstruction on the portion of the windshield, by use of a trained image classification method to identify the obstruction, wherein the obstruction includes rain on the windshield; and transmitting a signal toward a windshield wiper assembly in response to identification of the rain on the windshield using the trained image classification method.
 8. The non-transitory computer-readable medium of claim 7, wherein the second focal range includes an external surface of the portion of the windshield.
 9. The non-transitory computer-readable medium of claim 7, wherein the first focal range includes a portion of the environment at least five meters from the first camera.
 10. The non-transitory computer-readable medium of claim 7, wherein the operations further comprise responsive to identification of the obstruction, processing at least one image from the second camera to determine one or more regions in image space of the first camera which are affected by the obstruction.
 11. The non-transitory computer-readable medium of claim 7, wherein the obstruction is identified based on the obstruction being associated with bright and dark spots in the plurality of images.
 12. The non-transitory computer-readable medium of claim 7, wherein the signal is transmitted toward the windshield wiper assembly based on a total area of water identified in the portion of the windshield.
 13. A system comprising: imaging means for obtaining a plurality of images from a camera array mountable on an interior of a vehicle to capture an environment in front of the vehicle through a windshield, the camera array including a first camera having a first focal range and a second camera having a second focal range shorter than the first focal range, and the first camera and the second camera having an overlapping fields-of-views, and the plurality of images including images captured from the first camera and the second camera which include a portion of the windshield; processing means for determining whether the plurality of images include an obstruction on the portion of the windshield, using a trained image classification method to identify the obstruction, wherein the obstruction includes rain on the windshield; and activation means for transmitting a signal toward a windshield wiper assembly in response to identification of the rain on the windshield using the trained image classification method.
 14. The system of claim 13, wherein the second focal range includes an external surface of the portion of the windshield.
 15. The system of claim 13, wherein the first focal range includes a portion of the environment at least five meters from the first camera.
 16. The system of claim 13, wherein the processing means is further for determining, based on images from the second camera, one or more regions in image space of the first camera which are affected by the obstruction.
 17. The system of claim 13, wherein the obstruction is identified based on the obstruction being associated with bright and dark spots in the plurality of images.
 18. The system of claim 13, wherein the signal is transmitted toward the windshield wiper assembly based on a total area of water identified in the portion of the windshield. 